﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WatiNCF.Steps;

namespace WatiNCF
{
    public interface IWizardController
    {
        event EventHandler<StepEventArgs> BeforeStepNext;
        event EventHandler<StepEventArgs> AfterStepNext;
        event EventHandler<StepEventArgs> BeforeStepPrevious;
        event EventHandler<StepEventArgs> AfterStepPrevious;
        event EventHandler<StepEventArgs> BeforeCancel;
        event EventHandler<StepEventArgs> AfterCancel;
    }
    
    public interface IWizardController<T> : IWizardController
    {
        T StepNext();
        T StepNext(string stepName);
        T StepPrevious();
        T StepPrevious(string stepName);
        T Cancel();

        T ResetExecutionFlag();
    }
}
